/**
 * Licensed Materials - Property of IBM
 * (c) Copyright IBM Corporation 2008. All Rights Reserved.
 * 
 * Note to U.S. Government Users Restricted Rights:
 * Use, duplication or disclosure restricted by GSA ADP Schedule
 * Contract with IBM Corp.
 *
 * $Id$
 */
package example.jazztalk.common.model.util;

import com.ibm.team.repository.common.IItem;
import com.ibm.team.repository.common.IItemHandle;
import com.ibm.team.repository.common.IManagedItem;
import com.ibm.team.repository.common.IManagedItemHandle;
import com.ibm.team.repository.common.ISimpleItem;
import com.ibm.team.repository.common.ISimpleItemHandle;

import com.ibm.team.repository.common.model.Item;
import com.ibm.team.repository.common.model.ItemHandle;
import com.ibm.team.repository.common.model.ManagedItem;
import com.ibm.team.repository.common.model.ManagedItemHandle;
import com.ibm.team.repository.common.model.SimpleItem;
import com.ibm.team.repository.common.model.SimpleItemHandle;

import example.jazztalk.common.model.*;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see example.jazztalk.common.model.JazztalkPackage
 * @generated
 */
public class JazztalkAdapterFactory extends AdapterFactoryImpl {
	/**
	 * The cached model package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static JazztalkPackage modelPackage;

	/**
	 * Creates an instance of the adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public JazztalkAdapterFactory() {
		if (modelPackage == null) {
			modelPackage = JazztalkPackage.eINSTANCE;
		}
	}

	/**
	 * Returns whether this factory is applicable for the type of the object.
	 * <!-- begin-user-doc -->
	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
	 * <!-- end-user-doc -->
	 * @return whether this factory is applicable for the type of the object.
	 * @generated
	 */
	public boolean isFactoryForType(Object object) {
		if (object == modelPackage) {
			return true;
		}
		if (object instanceof EObject) {
			return ((EObject) object).eClass().getEPackage() == modelPackage;
		}
		return false;
	}

	/**
	 * The switch the delegates to the <code>createXXX</code> methods.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected JazztalkSwitch modelSwitch = new JazztalkSwitch() {
		public Object caseMessage(Message object) {
			return createMessageAdapter();
		}

		public Object caseMessageHandle(MessageHandle object) {
			return createMessageHandleAdapter();
		}

		public Object caseItemHandleFacade(IItemHandle object) {
			return createItemHandleFacadeAdapter();
		}

		public Object caseItemHandle(ItemHandle object) {
			return createItemHandleAdapter();
		}

		public Object caseItemFacade(IItem object) {
			return createItemFacadeAdapter();
		}

		public Object caseItem(Item object) {
			return createItemAdapter();
		}

		public Object caseManagedItemHandleFacade(IManagedItemHandle object) {
			return createManagedItemHandleFacadeAdapter();
		}

		public Object caseManagedItemHandle(ManagedItemHandle object) {
			return createManagedItemHandleAdapter();
		}

		public Object caseManagedItemFacade(IManagedItem object) {
			return createManagedItemFacadeAdapter();
		}

		public Object caseManagedItem(ManagedItem object) {
			return createManagedItemAdapter();
		}

		public Object caseSimpleItemHandleFacade(ISimpleItemHandle object) {
			return createSimpleItemHandleFacadeAdapter();
		}

		public Object caseSimpleItemHandle(SimpleItemHandle object) {
			return createSimpleItemHandleAdapter();
		}

		public Object caseSimpleItemFacade(ISimpleItem object) {
			return createSimpleItemFacadeAdapter();
		}

		public Object caseSimpleItem(SimpleItem object) {
			return createSimpleItemAdapter();
		}

		public Object defaultCase(EObject object) {
			return createEObjectAdapter();
		}
	};

	/**
	 * Creates an adapter for the <code>target</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param target the object to adapt.
	 * @return the adapter for the <code>target</code>.
	 * @generated
	 */
	public Adapter createAdapter(Notifier target) {
		return (Adapter) modelSwitch.doSwitch((EObject) target);
	}

	/**
	 * Creates a new adapter for an object of class '{@link example.jazztalk.common.model.Message <em>Message</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see example.jazztalk.common.model.Message
	 * @generated
	 */
	public Adapter createMessageAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link example.jazztalk.common.model.MessageHandle <em>Message Handle</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see example.jazztalk.common.model.MessageHandle
	 * @generated
	 */
	public Adapter createMessageHandleAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link com.ibm.team.repository.common.IItemHandle <em>Item Handle Facade</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see com.ibm.team.repository.common.IItemHandle
	 * @generated
	 */
	public Adapter createItemHandleFacadeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link com.ibm.team.repository.common.model.ItemHandle <em>Item Handle</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see com.ibm.team.repository.common.model.ItemHandle
	 * @generated
	 */
	public Adapter createItemHandleAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link com.ibm.team.repository.common.IItem <em>Item Facade</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see com.ibm.team.repository.common.IItem
	 * @generated
	 */
	public Adapter createItemFacadeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link com.ibm.team.repository.common.model.Item <em>Item</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see com.ibm.team.repository.common.model.Item
	 * @generated
	 */
	public Adapter createItemAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link com.ibm.team.repository.common.IManagedItemHandle <em>Managed Item Handle Facade</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see com.ibm.team.repository.common.IManagedItemHandle
	 * @generated
	 */
	public Adapter createManagedItemHandleFacadeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link com.ibm.team.repository.common.model.ManagedItemHandle <em>Managed Item Handle</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see com.ibm.team.repository.common.model.ManagedItemHandle
	 * @generated
	 */
	public Adapter createManagedItemHandleAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link com.ibm.team.repository.common.IManagedItem <em>Managed Item Facade</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see com.ibm.team.repository.common.IManagedItem
	 * @generated
	 */
	public Adapter createManagedItemFacadeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link com.ibm.team.repository.common.model.ManagedItem <em>Managed Item</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see com.ibm.team.repository.common.model.ManagedItem
	 * @generated
	 */
	public Adapter createManagedItemAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link com.ibm.team.repository.common.ISimpleItemHandle <em>Simple Item Handle Facade</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see com.ibm.team.repository.common.ISimpleItemHandle
	 * @generated
	 */
	public Adapter createSimpleItemHandleFacadeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link com.ibm.team.repository.common.model.SimpleItemHandle <em>Simple Item Handle</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see com.ibm.team.repository.common.model.SimpleItemHandle
	 * @generated
	 */
	public Adapter createSimpleItemHandleAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link com.ibm.team.repository.common.ISimpleItem <em>Simple Item Facade</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see com.ibm.team.repository.common.ISimpleItem
	 * @generated
	 */
	public Adapter createSimpleItemFacadeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link com.ibm.team.repository.common.model.SimpleItem <em>Simple Item</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see com.ibm.team.repository.common.model.SimpleItem
	 * @generated
	 */
	public Adapter createSimpleItemAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for the default case.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @generated
	 */
	public Adapter createEObjectAdapter() {
		return null;
	}

} //JazztalkAdapterFactory
